package cc.chenwenxi.sdk.demo;

import com.pi4j.io.gpio.GpioController;
import com.pi4j.io.gpio.GpioFactory;
import com.pi4j.io.gpio.GpioPinDigitalOutput;
import com.pi4j.io.gpio.PinPullResistance;
import com.pi4j.io.gpio.PinState;
import com.pi4j.io.gpio.RaspiPin;

public class ShutdownGpio {

	public static void main(String[] args) throws InterruptedException {
		  System.out.println("< -  i4J  - > GPIO关闭示例...已启动。");
			
	        //创建gpio控制器
	        final GpioController gpio = GpioFactory.getInstance();
	
	        //将gpio引脚＃01设置为输出引脚并打开
	        final GpioPinDigitalOutput pin = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_01,PinState.HIGH);
	
	        //配置引脚关闭行为; 这些设置将是
	        //在应用程序终止时自动应用于引脚
	        pin.setShutdownOptions(true,PinState.LOW,PinPullResistance.OFF);
	
	        System.out.println(" - > GPIO状态应为：ON");
	        System.out.println("此程序将在10秒内自动终止");
	        System.out.println("或者您可以随时使用CTRL-C键击终止。");
	        System.out.println("当程序终止时，应关闭GPIO状态并设置为：OFF");
	
	        //等10秒
	        Thread.sleep(10000);
	
	        System.out.println("..现在关闭...");
	
	        //通过关闭GPIO控制器来停止所有GPIO活动/线程
	        //(此方法将强制关闭所有GPIO监视线程和计划任务)
	        gpio.shutdown();
	
	        System.out.println("退出ShutdownGpioExample");
	}
}
